home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programmer's Power Pack / Delphi Volume 1.iso / s_to_z / tmmplot / settings.pas < prev    next >
Pascal/Delphi Source File  |  1996-09-15  |  8KB  |  321 lines

  1. unit Settings;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, TabNotBk, StdCtrls, Buttons, ExtCtrls, Slider, MMPlot;
  8.  
  9. type
  10.   TSettingsDlg = class(TForm)
  11.     Notebook: TTabbedNotebook;
  12.     OKBtn: TBitBtn;
  13.     CancelBtn: TBitBtn;
  14.     HelpBtn: TBitBtn;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     Label3: TLabel;
  18.     Label4: TLabel;
  19.     Label5: TLabel;
  20.     Label6: TLabel;
  21.     Label7: TLabel;
  22.     Label8: TLabel;
  23.     Label9: TLabel;
  24.     Label10: TLabel;
  25.     Label11: TLabel;
  26.     Slider: TSlider;
  27.     Panel1: TPanel;
  28.     Panel3: TPanel;
  29.     Panel4: TPanel;
  30.     Panel5: TPanel;
  31.     Panel7: TPanel;
  32.     Panel8: TPanel;
  33.     Panel2: TPanel;
  34.     PanelBkGnd: TPanel;
  35.     ColorDialog: TColorDialog;
  36.     Panel6: TPanel;
  37.     StdBtn: TBitBtn;
  38.     Bevel3: TBevel;
  39.     cbSaveSet: TCheckBox;
  40.     cbShowTB: TCheckBox;
  41.     cbShowNAV: TCheckBox;
  42.     cbAutoStretch: TCheckBox;
  43.     lbPorts: TListBox;
  44.     ScanBtn: TBitBtn;
  45.     cbSendComm: TCheckBox;
  46.     Panel9: TPanel;
  47.     ProgramIcon: TImage;
  48.     ProductName: TLabel;
  49.     Version: TLabel;
  50.     Copyright: TLabel;
  51.     DLLName: TLabel;
  52.     Registeredfor: TLabel;
  53.     DLLCopyright: TLabel;
  54.     DLLVersion: TLabel;
  55.     Label14: TLabel;
  56.     Komment: TLabel;
  57.     Bevel2: TBevel;
  58.     Bevel1: TBevel;
  59.     Label12: TLabel;
  60.     Label13: TLabel;
  61.     Label15: TLabel;
  62.     Label16: TLabel;
  63.     Label17: TLabel;
  64.     cboBaud: TComboBox;
  65.     cboParity: TComboBox;
  66.     cboStop: TComboBox;
  67.     cboData: TComboBox;
  68.     cboFlow: TComboBox;
  69.     Destination: TEdit;
  70.     procedure PanelEnter(Sender: TObject);
  71.     procedure PanelExit(Sender: TObject);
  72.     procedure PanelClick(Sender: TObject);
  73.     procedure PanelDblClick(Sender: TObject);
  74.     procedure SliderValueChange(Sender: TObject);
  75.     procedure StdBtnClick(Sender: TObject);
  76.     procedure NotebookChange(Sender: TObject; NewTab: Integer;
  77.       var AllowChange: Boolean);
  78.     procedure FormCreate(Sender: TObject);
  79.     procedure OKBtnClick(Sender: TObject);
  80.     procedure ScanBtnClick(Sender: TObject);
  81.     procedure FormActivate(Sender: TObject);
  82.     procedure cbSendCommClick(Sender: TObject);
  83.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  84.   private
  85.     { Private declarations }
  86.     Panel: TPanel;
  87.     procedure InitPortPage;
  88.     procedure GetPorts;
  89.     procedure GetAbout;
  90.     procedure GetPens;
  91.     procedure SetPort;
  92.     procedure SetPens;
  93.     procedure SetDesktop;
  94.     procedure GetDesktop;
  95.   public
  96.     { Public declarations }
  97.     procedure SetPanels(Value: TStdColors);
  98.     function  GetPanels: TStdColors;
  99.   end;
  100.  
  101. var
  102.   SettingsDlg: TSettingsDlg;
  103.  
  104. implementation
  105.  
  106. {$R *.DFM}
  107. uses Main;
  108.  
  109. procedure TSettingsDlg.SetPanels(Value: TStdColors);
  110. begin
  111.   Panel1.Color := Value[1];
  112.   Panel2.Color := Value[2];
  113.   Panel3.Color := Value[3];
  114.   Panel4.Color := Value[4];
  115.   Panel5.Color := Value[5];
  116.   Panel6.Color := Value[6];
  117.   Panel7.Color := Value[7];
  118.   Panel8.Color := Value[8];
  119. end;
  120.  
  121. function TSettingsDlg.GetPanels: TStdColors;
  122. begin
  123.   Result[1] := Panel1.Color;
  124.   Result[2] := Panel2.Color;
  125.   Result[3] := Panel3.Color;
  126.   Result[4] := Panel4.Color;
  127.   Result[5] := Panel5.Color;
  128.   Result[6] := Panel6.Color;
  129.   Result[7] := Panel7.Color;
  130.   Result[8] := Panel8.Color;
  131. end;
  132.  
  133. procedure TSettingsDlg.PanelEnter(Sender: TObject);
  134. begin
  135.   TObject(Panel) := Sender;
  136.   Panel.borderstyle := bssingle;
  137. end;
  138.  
  139. procedure TSettingsDlg.PanelExit(Sender: TObject);
  140. begin
  141.   Panel.borderstyle := bsnone;
  142. end;
  143.  
  144. procedure TSettingsDlg.PanelClick(Sender: TObject);
  145. begin
  146.   TPanel(Sender).SetFocus;
  147. end;
  148.  
  149. procedure TSettingsDlg.PanelDblClick(Sender: TObject);
  150. begin
  151.   Colordialog.Color := TPanel(Sender).Color;
  152.   if Colordialog.Execute then
  153.     TPanel(Sender).Color := Colordialog.Color;
  154. end;
  155.  
  156. procedure TSettingsDlg.SliderValueChange(Sender: TObject);
  157. begin
  158.   Slider.Trackwidth := Slider.Value+2;
  159. end;
  160.  
  161. procedure TSettingsDlg.StdBtnClick(Sender: TObject);
  162. begin
  163.   Case Notebook.Pageindex of
  164.   0: begin
  165.       SetPanels(stdcolors);
  166.       PanelBkGnd.Color := clBtnFace;
  167.       Slider.Value := 1;
  168.     end;
  169.   1: begin
  170.       cbSaveSet.checked := true;
  171.       cbShowTB.checked := true;
  172.       cbShowNAV.checked := true;
  173.       cbAutoStretch.checked := true;
  174.     end;
  175.   2: begin
  176.     end;
  177.   end;
  178. end;
  179.  
  180. procedure TSettingsDlg.NotebookChange(Sender: TObject;
  181.   NewTab: Integer; var AllowChange: Boolean);
  182. begin
  183.   StdBtn.Visible := NewTab = 0;
  184.   AllowChange := true;
  185. end;
  186.  
  187. procedure TSettingsDlg.FormCreate(Sender: TObject);
  188. begin
  189.   InitPortPage;
  190.   GetPens;
  191. end;
  192.  
  193. procedure TSettingsDlg.GetPorts;
  194. begin
  195.   lbPorts.Items.Clear;
  196.   lbPorts.Items.Insert(0,'(none)');
  197.   MainForm.MMPlot1.GetPortsAvail(false,lbPorts.Items);
  198.   lbPorts.Itemindex := 0;
  199. end;
  200.  
  201. procedure TSettingsDlg.SetPort;
  202. begin
  203.   MainForm.MMPlot1.PortName := lbPorts.Items[lbPorts.ItemIndex];
  204.   MainForm.MMPlot1.DirecttoPort := cbsendcomm.checked;
  205.   If not cbsendcomm.checked then
  206.     MainForm.MMPlot1.Destination := destination.text;
  207. end;
  208.  
  209. procedure TSettingsDlg.SetPens;
  210. begin
  211.   MainForm.MMPlot1.PenColors := GetPanels;
  212.   MainForm.Color := PanelBkGnd.Color;
  213.   MainForm.PaintBox1.Canvas.Pen.Width := Slider.Value;
  214. end;
  215.  
  216. procedure TSettingsDlg.SetDesktop;
  217. begin
  218.   MainForm.DragPanel.visible := cbShowNav.Checked;
  219.   MainForm.Speedbar.visible  := cbShowTB.Checked;
  220.   MainForm.Autostretch := cbAutoStretch.Checked;
  221. end;
  222.  
  223. procedure TSettingsDlg.GetAbout;
  224. begin
  225.   Version.Caption := 'Rev.'+MainForm.MMPLot1.Version;
  226.   DLLVersion.Caption := 'Rev.'+MMPlot.GetDLLVersion;
  227. End;
  228.  
  229. procedure TSettingsDlg.GetPens;
  230. begin
  231.   SetPanels(MainForm.MMPlot1.PenColors);
  232.   PanelBkGnd.Color := MainForm.Color;
  233.   Slider.Value := MainForm.PaintBox1.Canvas.Pen.Width;
  234. End;
  235.  
  236. procedure TSettingsDlg.GetDesktop;
  237. begin
  238.   cbShowNav.Checked := MainForm.DragPanel.visible;
  239.   cbShowTB.Checked := MainForm.Speedbar.visible;
  240.   cbAutoStretch.Checked := MainForm.Autostretch;
  241. end;
  242.  
  243. procedure TSettingsDlg.InitPortPage;
  244. begin
  245.   GetPorts;
  246.   cboBaud.Items.Add('110');
  247.   cboBaud.Items.Add('300');
  248.   cboBaud.Items.Add('600');
  249.   cboBaud.Items.Add('1200');
  250.   cboBaud.Items.Add('2400');
  251.   cboBaud.Items.Add('4800');
  252.   cboBaud.Items.Add('9600');
  253.   cboBaud.Items.Add('14400');
  254.   cboBaud.Items.Add('19200');
  255.   cboBaud.Items.Add('38400');
  256.   cboBaud.Items.Add('56000');
  257.   cboBaud.Items.Add('128000');
  258.   cboBaud.Items.Add('256000');
  259.  
  260.   cboData.Items.Add('4');
  261.   cboData.Items.Add('5');
  262.   cboData.Items.Add('6');
  263.   cboData.Items.Add('7');
  264.   cboData.Items.Add('8');
  265.  
  266.   cboParity.Items.Add('None');
  267.   cboParity.Items.Add('Odd');
  268.   cboParity.Items.Add('Even');
  269.   cboParity.Items.Add('Mark');
  270.   cboParity.Items.Add('Space');
  271.  
  272.   cboStop.Items.Add('1');
  273.   cboStop.Items.Add('1.5');
  274.   cboStop.Items.Add('2');
  275.  
  276.   cboFlow.Items.Add('None');
  277.   cboFlow.Items.Add('RTS/CTS');
  278.   cboFlow.Items.Add('XON/XOFF');
  279. end;
  280.  
  281.  
  282. procedure TSettingsDlg.OKBtnClick(Sender: TObject);
  283. begin
  284.   SetPort;
  285.   SetPens;
  286.   SetDesktop;
  287. end;
  288.  
  289. procedure TSettingsDlg.ScanBtnClick(Sender: TObject);
  290. begin
  291.   GetPorts;
  292. end;
  293.  
  294. procedure TSettingsDlg.FormActivate(Sender: TObject);
  295. begin
  296.   StdBtn.Visible := Notebook.pageindex = 0;
  297.   GetDesktop;
  298.   GetAbout;
  299. end;
  300.  
  301. procedure TSettingsDlg.cbSendCommClick(Sender: TObject);
  302. begin
  303.   destination.enabled := not cbsendcomm.checked;
  304.   scanbtn.enabled := cbsendcomm.checked;
  305.   lbports.enabled := cbsendcomm.checked;
  306.   cboBaud.enabled := cbsendcomm.checked;
  307.   cboData.enabled := cbsendcomm.checked;
  308.   cboParity.enabled := cbsendcomm.checked;
  309.   cboStop.enabled := cbsendcomm.checked;
  310.   cboFlow.enabled := cbsendcomm.checked;
  311. end;
  312.  
  313. procedure TSettingsDlg.FormClose(Sender: TObject;
  314.   var Action: TCloseAction);
  315. begin
  316.   If cbSaveSet.Checked then;
  317.      { save it }
  318. end;
  319.  
  320. end.
  321.